using Shard.Contracts.UserService.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace Shard.Contracts.UserService;

/// <summary>
/// 用户应用服务接口
/// </summary>

public interface IUserAppService : IApplicationService
{
    /// <summary>
    /// 创建用户
    /// </summary>
    Task<UserDto> CreateAsync(CreateUserDto input);
        
    /// <summary>
    /// 获取用户信息
    /// </summary>
    Task<UserDto?> GetAsync(Guid id);
        
    /// <summary>
    /// 分页获取用户列表
    /// </summary>
    Task<PagedResultDto<UserDto>> GetListAsync(PagedAndSortedResultRequestDto input);
        
    /// <summary>
    /// 更新用户资料
    /// </summary>
    //Task<UserDto> UpdateProfileAsync(long id, UpdateUserProfileDto input);
        
    /// <summary>
    /// 禁用/启用用户
    /// </summary>
    //Task<UserDto> SetUserStatusAsync(long id, SetUserStatusDto input);
}